package wang.lcs.pay.ali.dto;

import java.util.Map;

/**
 * https://docs.open.alipay.com/270/105902/
 * 
 * @author changshu.li
 *
 */
public class AliWebNotifyModel extends AliModel {

    public AliWebNotifyModel(Map<String, String> map) {
        super(map);
    }

    /**
     * 格式: String(64)<br/>
     * 支付宝交易凭证号
     **/
    public String getTradeNo() {
        return map.get("trade_no");
    }

    public void setTradeNo(String val) {
        map.put("trade_no", val);
    }

    /**
     * 格式: String(32)<br/>
     * 支付宝分配给开发者的应用Id
     **/
    public String getAppId() {
        return map.get("app_id");
    }

    public void setAppId(String val) {
        map.put("app_id", val);
    }

    /**
     * 格式: String(64)<br/>
     * 原支付请求的商户订单号
     **/
    public String getOutTradeNo() {
        return map.get("out_trade_no");
    }

    public void setOutTradeNo(String val) {
        map.put("out_trade_no", val);
    }

    /**
     * 格式: String(64)<br/>
     * 商户业务ID，主要是退款通知中返回退款申请的流水号
     **/
    public String getOutBizNo() {
        return map.get("out_biz_no");
    }

    public void setOutBizNo(String val) {
        map.put("out_biz_no", val);
    }

    /**
     * 格式: String(16)<br/>
     * 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字
     **/
    public String getBuyerId() {
        return map.get("buyer_id");
    }

    public void setBuyerId(String val) {
        map.put("buyer_id", val);
    }

    /**
     * 格式: String(30)<br/>
     * 卖家支付宝用户号
     **/
    public String getSellerId() {
        return map.get("seller_id");
    }

    public void setSellerId(String val) {
        map.put("seller_id", val);
    }

    /**
     * 格式: String(32)<br/>
     * 交易目前所处的状态，见交易状态说明
     **/
    public String getTradeStatus() {
        return map.get("trade_status");
    }

    public void setTradeStatus(String val) {
        map.put("trade_status", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 本次交易支付的订单金额，单位为人民币（元），精确到小数点后2位
     **/
    public String getTotalAmount() {
        return map.get("total_amount");
    }

    public void setTotalAmount(String val) {
        map.put("total_amount", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 商家在交易中实际收到的款项，单位为元，精确到小数点后2位
     **/
    public String getReceiptAmount() {
        return map.get("receipt_amount");
    }

    public void setReceiptAmount(String val) {
        map.put("receipt_amount", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 用户在交易中支付的可开发票的金额，单位为元，精确到小数点后2位
     **/
    public String getInvoiceAmount() {
        return map.get("invoice_amount");
    }

    public void setInvoiceAmount(String val) {
        map.put("invoice_amount", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 用户在交易中支付的金额，单位为元，精确到小数点后2位
     **/
    public String getBuyerPayAmount() {
        return map.get("buyer_pay_amount");
    }

    public void setBuyerPayAmount(String val) {
        map.put("buyer_pay_amount", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 使用集分宝支付的金额，单位为元，精确到小数点后2位
     **/
    public String getPointAmount() {
        return map.get("point_amount");
    }

    public void setPointAmount(String val) {
        map.put("point_amount", val);
    }

    /**
     * 格式: Number(9,2)<br/>
     * 退款通知中，返回总退款金额，单位为元，精确到小数点后2位
     **/
    public String getRefundFee() {
        return map.get("refund_fee");
    }

    public void setRefundFee(String val) {
        map.put("refund_fee", val);
    }

    /**
     * 格式: String(256)<br/>
     * 商品的标题/交易标题/订单标题/订单关键字等，是请求时对应的参数，原样通知回来
     **/
    public String getSubject() {
        return map.get("subject");
    }

    public void setSubject(String val) {
        map.put("subject", val);
    }

    /**
     * 格式: String(400)<br/>
     * 该订单的备注、描述、明细等。对应请求时的body参数，原样通知回来
     **/
    public String getBody() {
        return map.get("body");
    }

    public void setBody(String val) {
        map.put("body", val);
    }

    /**
     * 格式: Date<br/>
     * 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss
     **/
    public String getGmtCreate() {
        return map.get("gmt_create");
    }

    public void setGmtCreate(String val) {
        map.put("gmt_create", val);
    }

    /**
     * 格式: Date<br/>
     * 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss
     **/
    public String getGmtPayment() {
        return map.get("gmt_payment");
    }

    public void setGmtPayment(String val) {
        map.put("gmt_payment", val);
    }

    /**
     * 格式: Date<br/>
     * 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S
     **/
    public String getGmtRefund() {
        return map.get("gmt_refund");
    }

    public void setGmtRefund(String val) {
        map.put("gmt_refund", val);
    }

    /**
     * 格式: Date<br/>
     * 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss
     **/
    public String getGmtClose() {
        return map.get("gmt_close");
    }

    public void setGmtClose(String val) {
        map.put("gmt_close", val);
    }

    /**
     * 格式: String(512)<br/>
     * 支付成功的各个渠道金额信息，详见资金明细信息说明
     **/
    public String getFundBillList() {
        return map.get("fund_bill_list");
    }

    public void setFundBillList(String val) {
        map.put("fund_bill_list", val);
    }

    /**
     * 格式: String(512)<br/>
     * 本交易支付时所使用的所有优惠券信息，详见优惠券信息说明
     **/
    public String getVoucherDetailList() {
        return map.get("voucher_detail_list");
    }

    public void setVoucherDetailList(String val) {
        map.put("voucher_detail_list", val);
    }

    /**
     * 格式: String(512)<br/>
     * 公共回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝
     **/
    public String getPassbackParams() {
        return map.get("passback_params");
    }

    public void setPassbackParams(String val) {
        map.put("passback_params", val);
    }
}
